package cn.cc.goods.service;

import cn.cc.common.result.utils.RestResult;
import cn.cc.goods.service.bo.AddGoodsSkuAndSpuBO;
import cn.cc.goods.service.bo.DelGoodsSkuAndSpuBO;
import cn.cc.goods.service.bo.UpdGoodsSkuAndSpuBO;
import cn.cc.goods.service.domain.EsResultSourceDO;
import cn.cc.goods.service.domain.GetGoodsSkuAndSpuDO;

import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * @program: smail-mi-cloud
 * @description:商品主体功能接口
 * @author: Mr.WuChao
 * @create: 2021-07-17 09:09
 **/
public interface GoodsService {
    /**
     * @description:用户点击查询商品查询sku+spu表 传入spuid
     * @auther: Mr.WuChao
     * @date: 2021/7/17 9:12
     * @return:
     */
    RestResult<GetGoodsSkuAndSpuDO> getGoodsSkuAndSpu(String spuId);

    /**
     * @param index:es索引
     * @param spuName:商品名称
     * @description:es搜索商品只会搜索出spu信息并且高亮显示
     * @auther: Mr.WuChao
     * @date: 2021/7/20 11:45
     * @return: cn.cc.common.result.utils.RestResult<java.lang.Void>
     */
    RestResult<Map<String, EsResultSourceDO>> esGetSpuName(String index, String spuName) throws IOException;

    /**
     * @param goods:
     * @description:添加商品
     * @auther: Mr.WuChao
     * @date: 2021/7/21 11:00
     * @return: cn.cc.common.result.utils.RestResult<java.lang.Void>
     */
    RestResult<Void> addGoods(AddGoodsSkuAndSpuBO goods);


    /**
     * @description:修改商品
     * @auther: Mr.WuChao
     * @param goods:
     * @date: 2021/7/21 11:16
     * @return:
     */
    RestResult<Void> updGoods(UpdGoodsSkuAndSpuBO goods);


    /**
     * @description:删除商品
     * @auther: Mr.WuChao
     * @param goods:
     * @date: 2021/7/21 11:16
     * @return:
     */
    RestResult<Void> delGoods(DelGoodsSkuAndSpuBO goods);
}
